package com.comtroller;

import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.service.OrderInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;

/**
 * Description:
 *
 * @Author: liukai
 * @Create: 2025/8/9 8:54
 * @Version: 1.0
 */
@RestController
public class OrderInfoController {
    @Autowired
    OrderInfoService orderInfoService;
//  翻牌器
    @RequestMapping("amount")
    public JSONObject amount(){
        JSONObject jsonObject = new JSONObject();
        Double amount = orderInfoService.amount();
        jsonObject.put("status",0);
        jsonObject.put("msg","");
        jsonObject.put("data",amount);
        return jsonObject;
    }
//  占比饼图
    @RequestMapping("proportion")
    public JSONObject proportion(){
        List<Map> proportion = orderInfoService.proportion();
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("status",0);
        jsonObject.put("msg","");
        JSONArray data = new JSONArray();
        for (Map map : proportion) {
            JSONObject jsonObject1 = new JSONObject();
            jsonObject1.put("name",map.get("name"));
            jsonObject1.put("value",map.get("zb"));
            data.add(jsonObject1);
        }
        jsonObject.put("data",data);
        return jsonObject;
    }
//  轮播表格
    @RequestMapping("ranking")
    public JSONObject ranking(){
        JSONObject jsonObject = new JSONObject();
        List<Map> ranking = orderInfoService.ranking();
        jsonObject.put("status",0);
        jsonObject.put("msg","");

        JSONObject data = new JSONObject();
        JSONArray columns = new JSONArray();
        JSONObject jsonObject1 = new JSONObject();
        jsonObject1.put("name","机构");
        jsonObject1.put("id","namee");
        columns.add(jsonObject1);
        JSONObject jsonObject2 = new JSONObject();
        jsonObject2.put("name","完运里程");
        jsonObject2.put("id","Mileage");
        columns.add(jsonObject2);
        JSONObject jsonObject3 = new JSONObject();
        jsonObject3.put("name","完运次数");
        jsonObject3.put("id","Times");
        columns.add(jsonObject3);
        JSONObject jsonObject4 = new JSONObject();
        jsonObject4.put("name","完运时长");
        jsonObject4.put("id","Duration");
        columns.add(jsonObject4);
        JSONObject jsonObject5 = new JSONObject();
        jsonObject5.put("name","每次平均时长");
        jsonObject5.put("id","AverageDuration");
        columns.add(jsonObject5);
        JSONObject jsonObject6 = new JSONObject();
        jsonObject6.put("name","每次平均里程");
        jsonObject6.put("id","AverageMileage");
        columns.add(jsonObject6);
        JSONObject jsonObject7 = new JSONObject();
        jsonObject7.put("name","排名");
        jsonObject7.put("id","pm");
        columns.add(jsonObject7);
        data.put("columns",columns);

        JSONArray rows = new JSONArray();
        for (Map map : ranking) {
            JSONObject jsonObjectrow = new JSONObject();
            jsonObjectrow.put("namee",map.get("namee"));
            jsonObjectrow.put("Mileage",map.get("Mileage"));
            jsonObjectrow.put("Times",map.get("Times"));
            jsonObjectrow.put("Duration",map.get("Duration"));
            jsonObjectrow.put("AverageDuration",map.get("AverageDuration"));
            jsonObjectrow.put("AverageMileage",map.get("AverageMileage"));
            jsonObjectrow.put("pm",map.get("pm"));
            rows.add(jsonObjectrow);
        }
        data.put("rows",rows);
        jsonObject.put("data",data);
        return jsonObject;
    }
//  省份色彩
    @RequestMapping("province")
    public JSONObject province(){
        List<Map> province = orderInfoService.province();
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("status",0);
        jsonObject.put("msg","");

        JSONObject data = new JSONObject();
        JSONArray mapData = new JSONArray();
        for (Map map : province) {
            JSONObject jsonObject1 = new JSONObject();
            jsonObject1.put("name",map.get("name"));
            jsonObject1.put("value",map.get("je"));
            JSONArray tooltipValues = new JSONArray();
            tooltipValues.add(map.get("ds"));
            jsonObject1.put("tooltipValues",tooltipValues);
            mapData.add(jsonObject1);
        }
        data.put("mapData",mapData);
        data.put("valueName","金额");
        JSONArray tooltipNames = new JSONArray();
        tooltipNames.add("下单数");
        data.put("tooltipNames",tooltipNames);
        JSONArray tooltipUnits = new JSONArray();
        tooltipUnits.add("单");
        data.put("tooltipUnits",tooltipUnits);
        jsonObject.put("data",data);
        return jsonObject;
    }
//  核心指标
    @RequestMapping("Indicator")
    public JSONObject Indicator(){
        Map indicator = orderInfoService.Indicator();
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("status",0);
        jsonObject.put("msg","");
        JSONArray data = new JSONArray();
        JSONObject jsonObject1 = new JSONObject();
        jsonObject1.put("name","接单数");
        jsonObject1.put("value",indicator.get("orders"));
        data.add(jsonObject1);
        JSONObject jsonObject2 = new JSONObject();
        jsonObject2.put("name","发单数");
        jsonObject2.put("value",indicator.get("Issue"));
        data.add(jsonObject2);
        JSONObject jsonObject3 = new JSONObject();
        jsonObject3.put("name","完成运单数");
        jsonObject3.put("value",indicator.get("Completed"));
        data.add(jsonObject3);
        jsonObject.put("data",data);
        return jsonObject;
    }
//  横版柱状图
    @RequestMapping("successful")
    public JSONObject successful(){
        List<Map> successful = orderInfoService.successful();
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("status",0);
        jsonObject.put("msg","");
        JSONObject data = new JSONObject();
        JSONArray categories = new JSONArray();
        for (Map map : successful) {
            categories.add(map.get("name"));
        }
        data.put("categories",categories);

        JSONArray series = new JSONArray();
        JSONObject jsonObject1 = new JSONObject();
        jsonObject1.put("name","成功派送单数");
        JSONArray data1 = new JSONArray();
        for (Map map : successful) {
            data1.add(map.get("cg"));
        }
        jsonObject1.put("data",data1);
        series.add(jsonObject1);
        data.put("series",series);
        jsonObject.put("data",data);
        return jsonObject;
    }
}
